﻿#include <iostream>
class WOLF;
typedef void(WOLF::* PGROUP)();//定义成员函数的函数指针
typedef void(*COUNT)();//定义类静态成员函数的函数指针

class WOLF {
public:
    static void Count() {//静态函数

    }
    WOLF() {
        pGroup= &WOLF::GrouUP0;//构造函数调用函数指针
        (this->*pGroup)();//构造函数调用函数指针
    }
    void GrouUP0() {
        std::cout << "狼成长到一阶段！" << std::endl;
    }
    void GrouUP1() {
        std::cout << "狼成长到二阶段！" << std::endl;
    }
    void GrouUP2() {
        std::cout << "狼成长到三阶段！" << std::endl;
    }
    PGROUP pGroup;
};

int main()
{
    PGROUP pFunction=&WOLF::GrouUP1;//主函数调用函数指针，固定写法，初始化
    WOLF* pWolf = new WOLF();//主函数调用函数指针，固定写法，初始化
    (pWolf->*pFunction)();//主函数调用函数指针，固定写法，实现多态

    COUNT _count = &WOLF::Count;//类静态成员函数指针，初始化
    _count();
}
